home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / tex / sauter.zip / C-CMR.MF < prev    next >
Text File  |  1990-09-16  |  15KB  |  348 lines

  1. % Compute the font construction parameters for the Computer
  2. % Modern Roman family.  Some other Computer Modern families
  3. % compute their parameters as modifications of these.
  4.  
  5. u#:=               % unit width
  6.     (if design_size < 10: ((design_size*15)+50)
  7. %elseif design_size < 12: ((design_size*17.5)+25)
  8.                     else: (-(0.062437562437*design_size*design_size) +
  9.                            (18.8736263736*design_size) +
  10.                            (17.5074925074))fi)/360pt#;
  11.  
  12. width_adj#:=       % width adjustment for certain characters
  13.                           0pt#;
  14.  
  15. serif_fit#:=       % extra sidebar near lowercase serifs
  16.                           0pt#;
  17.  
  18. cap_serif_fit#:=   % extra sidebar near uppercase serifs
  19.     (if design_size <  9: ((-0.5*design_size*design_size)+
  20.                            (13.5*design_size)-35)
  21.  elseif design_size < 10: ((design_size*4)+10)
  22.                     else: (((0.022893772893*design_size*design_size) +
  23.                            (3.4963369963*design_size) +
  24.                            (12.7472527472))+0.002)fi)/360pt#;
  25.  
  26. letter_fit#:=      % extra space added to all sidebars
  27.     (if design_size <  6: (-(design_size*20)+150)
  28.  elseif design_size <  7: (-(design_size*10)+90)
  29.  elseif design_size <  8: (-(design_size*20)+160)
  30.  elseif design_size < 10: (0)
  31.                     else: (-(0.9365634365616*design_size*design_size)+
  32.                            (20.60439560424*design_size) -
  33.                            (112.38761238732))fi)/360pt#;
  34.  
  35. body_height#:=     % height of tallest characters
  36.     (if design_size < 10: (design_size*270)
  37.                     else: (-(0.14568764568*design_size*design_size) +
  38.                            (273.205128205*design_size) -
  39.                            (17.482517482))fi)/360pt#;
  40.  
  41. asc_height#:=      % height of lowercase ascenders
  42.                           (design_size*250)/360pt#;
  43.  
  44. cap_height#:=      % height of caps
  45.     (if design_size < 10: (design_size*246)
  46.                     else: (-(0.0228937728937*design_size*design_size) +
  47.                            (246.503663003*design_size) -
  48.                            (2.74725274725))fi)/360pt#;
  49.  
  50. fig_height#:=      % height of numerals
  51.     (if design_size < 10: ((design_size*232)+0.00006)
  52.                     else: ((0.0270562770562*design_size*design_size) +
  53.                            (231.404761904*design_size) +
  54.                            (3.24675324675))fi)/360pt#;
  55.  
  56. x_height#:=        % height of lowercase without ascenders
  57.     (if design_size < 10: (design_size*155)
  58.                     else: (-(0.010406260406*design_size*design_size) +
  59.                            (155.22893772*design_size) -
  60.                            (1.2487512487))fi)/360pt#;
  61.  
  62. math_axis#:=       % axis of symmetry for math symbols
  63.     (if design_size < 10: (design_size*90)
  64.                     else: (-(0.00520313020313*design_size*design_size) +
  65.                            (90.1144688644*design_size) -
  66.                            (0.624375624375))fi)/360pt#;
  67.  
  68. bar_height#:=      % height of crossbar in lowercase e
  69.     (if design_size < 10: (design_size*87)
  70.                     else: ((-(0.087412587412*design_size*design_size) +
  71.                            (88.923076923*design_size) -
  72.                            (10.4895104895))+0.0008)fi)/360pt#;
  73.  
  74. comma_depth#:=     % depth of comma below baseline
  75.     (if design_size < 10: (design_size*70)
  76.                     else: ((0.010406260406*design_size*design_size) +
  77.                            (69.771062271*design_size) +
  78.                            (1.2487512487))fi)/360pt#;
  79.  
  80. desc_depth#:=      % depth of lowercase descenders
  81.     (if design_size < 10: (design_size*70)
  82.                     else: ((0.010406260406*design_size*design_size) +
  83.                            (69.771062271*design_size) +
  84.                            (1.2487512487))fi)/360pt#;
  85.  
  86. crisp#:=           % diameter of serif corners
  87.                           0/360pt#;
  88.  
  89. tiny#:=            % diameter of rounded corners
  90.     (if design_size <  6: ((design_size*10)+10)
  91.  elseif design_size <  7: (70)
  92.  elseif design_size <  8: (design_size*10)
  93.                     else: (80)fi)/360pt#;
  94.  
  95. fine#:=            % diameter of sharply rounded corners
  96.     (if design_size <  6: (design_size*10)
  97.  elseif design_size <  7: (60)
  98.  elseif design_size <  8: ((design_size*10)-10)
  99.                     else: (70)fi)/360pt#;
  100.  
  101. thin_join#:=       % width of extrafine details
  102.     (if design_size <  6: (design_size*10)
  103.  elseif design_size <  7: (60)
  104.  elseif design_size <  8: ((design_size*10)-10)
  105.  elseif design_size < 10: (70)
  106. %elseif design_size < 12: ((design_size*2.5)+45)
  107.                     else: ((0.046828171828*design_size*design_size) +
  108.                            (1.4697802197*design_size) +
  109.                            (50.6193806193))fi)/360pt#;
  110.  
  111. hair#:=            % lowercase hairline breadth
  112.     (if design_size <  8: ((design_size*5)+50)
  113.  elseif design_size < 10: (90)
  114. %elseif design_size < 12: ((design_size*2.5)+65)
  115.                     else: ((0.046828171828*design_size*design_size) +
  116.                            (1.4697802197*design_size) +
  117.                            (70.6193806193))fi)/360pt#;
  118.  
  119. stem#:=            % lowercase stem breadth
  120.     (if design_size <  9: ((design_size*20)+60)
  121.  elseif design_size < 10: ((design_size*10)+150)
  122.  elseif design_size < 12: ((design_size*15)+100)
  123.                     else: ((design_size*9.4696969696)+166.36363637)fi)/360pt#;
  124.  
  125. curve#:=           % lowercase curve breadth
  126.     (if design_size <  9: ((design_size*25)+55)
  127.  elseif design_size < 10: ((design_size*20)+100)
  128.  elseif design_size < 40: ((-0.23934398934*design_size*design_size) +
  129.                            (20.265567765*design_size) +
  130.                            (121.278721278))
  131.                     else: (548.951048934)fi)/360pt#;
  132.  
  133. ess#:=             % breadth in middle of lowercase s
  134.     (if design_size <  7: (-(design_size*design_size*5) +
  135.                            (design_size*105)-280)
  136.  elseif design_size < 10: ((design_size*20)+70)
  137.  elseif design_size < 12: ((design_size*15)+120)
  138.                     else: ((design_size*9.4696969696)+186.36363637)fi)/360pt#;
  139.  
  140.  
  141. flare#:=           % diameter of bulbs or breadth of terminals
  142.     (if design_size <  6: ((design_size*20)+90)
  143.  elseif design_size < 10: ((design_size*30)+30)
  144. %elseif design_size < 12: ((design_size*15)+180)
  145.                     else: ((0.280969030969*design_size*design_size) +
  146.                            (8.8186813186*design_size) +
  147.                            (213.71628317))fi)/360pt#;
  148.  
  149. dot_size#:=        % diameter of dots
  150.     (if design_size <  6: ((design_size*40)+20)
  151.  elseif design_size < 10: ((design_size*30)+80)
  152.  elseif design_size < 12: ((design_size*20)+180)
  153.                     else: ((design_size*17.0454545454)+215.45454546)fi)/360pt#;
  154.  
  155. cap_hair#:=        % uppercase hairline breadth
  156.     (if design_size <  9: ((design_size*5)+55)
  157.  elseif design_size < 10: ((design_size*10)+10)
  158. %elseif design_size < 12: ((design_size*2.5)+85)
  159.                     else: ((0.046828171828*design_size*design_size) +
  160.                            (1.4697802197*design_size) +
  161.                            (90.6193806193))fi)/360pt#;
  162.  
  163. cap_stem#:=        % uppercase stem breadth
  164.     (if design_size <  9: ((design_size*25)+65)
  165.  elseif design_size < 10: ((design_size*30)+20)
  166.  elseif design_size < 12: ((design_size*15)+170)
  167.  elseif design_size < 30: ((-0.4995004995*design_size*design_size) +
  168.                            (25.989010989*design_size) +
  169.                            (110.059940059))
  170.                     else: (440.179820179)fi)/360pt#;
  171.  
  172. cap_curve#:=       % uppercase curve breadth
  173.     (if design_size <  9: ((design_size*30)+60)
  174.  elseif design_size < 10: ((design_size*40)-30)
  175. %elseif design_size < 12: ((design_size*15)+220)
  176.  elseif design_size < 45: ((-0.23934398934*design_size*design_size) +
  177.                            (20.265567765*design_size) +
  178.                            (191.278721278))
  179.                     else: (618.557692303)fi)/360pt#;
  180.  
  181. cap_ess#:=